The present invention relates to the field of dynamic caching and, more particularly, to a technique for improving replication persistence in a caching appliance structure.
Caching appliances provide an effective means for improving system performance with regards to data that is frequently accessed. Using a cluster of multiple caching appliances (i.e., two or more caching appliances networked to function as a single cache), further provides high availability of the cached data. As shown in system 100 of FIG. 1, a typical caching appliance cluster 105 stores a set of data, referred to as a data partition 140 and 150, as a primary shard 143 and 153 and a replica shard 147 and 157 that are dispersed between the caching appliances 110 and 125.
Software applications generally interact with the primary shard 143 and 153 (i.e., read, update, delete, etc.). Changes made to the primary shard 143 and 153 are then propagated to the replica shard 147 and 157, which is used as a back-up copy. Upon failure of a primary shard 143 and 153, the corresponding replica shard 147 and 157 is then used as the primary.
In the conventional caching appliance 110 and 125, both the primary shard 143 and 153 and replica shard 147 and 157 for the data partitions 140 and 150 are kept in memory 115 and 130, which provides faster access over operations made to non-volatile storage (NVS) 120 and 135 media. While the use of memory 115 and 130 for the primary shard 143 and 153 and the resultant faster access times is the key benefit for using a caching appliance 110 and 125, the storing of the replica shard 147 and 157 in memory 115 and 130 provides no additional benefit, except in the event of a failure of the primary shard 143 and 153.
This conventional configuration of storing the replica shard 147 and 157 in memory 115 and 130 actually decreases the potential capacity of the cache provided by the caching appliance cluster 105 (i.e., uses faster storage medium for back-up purposes). Further, this approach does not ensure the persistence of the replica shard 147 and 157 should the memory 115 and 130 storing the replica shard 147 and 157 fails. In fact, this approach, actually provides no persistence of the state of the data partitions 140 and 150 should the caching appliance cluster 105 fail.